package battleco

import (
	"wails/schema/config/commonco"
	"wails/schema/enums/battleenum"
)

// C表现_方位
// @schema_export --ident=schema --json --config=表现
// @schema_go
// @cache_ts
// @alias 表现_方位
type C表现_方位 struct {
	C表现

	// @alias 标旗
	B标旗 map[battleenum.E表现方位标旗]bool
	// @alias 继承属性
	J继承属性 map[battleenum.K可继承的表现属性]battleenum.E表现继承属性策略
	// @alias 主体
	// 演算体可以完全按照主体属性的配置方式从它们的主体那里继承位置点、旋转以及其它属性比如可见性。一般来讲，你可以将主体看作成是一系列对象层级结构中的父级对象。
	// 默认为主表现
	Z主体 *SActorRequest
	// @alias 属性主体
	// 如果该字段被设置，那么该主体将被用来继承主体的属性，而普通主体则仍然被用来继承位置点和旋转。
	Z属性主体 *SActorRequest

	// @alias 绑定点
	B绑定点 string
	// @alias 坐标偏移
	Z坐标偏移 *commonco.S点
	// @alias 旋转偏移
	X旋转偏移 *commonco.S点
	// @alias 主体销毁时自动销毁
	Z主体销毁时自动销毁 bool
}

type SActorRequest struct {
	// @alias 所在域
	S所在域 battleenum.C查找表现效果域
	// @alias 查找方式
	C查找方式 battleenum.C查找表现对象方式
	// 格式1: 配置编号
	// 格式2: #标识
	// @alias 匹配表现
	P匹配表现 string `link:"表现"`
}

type SActorSiteOps struct {
	//  如果设置了该标旗，位置操作的位置将会进行一次性的计算，而不是持续性计算。
	// @alias  原地防守
	Y停止位移 bool

	//  如果设置了该标旗，位置操作的旋转将会进行一次性的计算，而不是持续性计算。
	// @alias  停止旋转
	T停止旋转 bool

	//  将使用的位置操作的列表，按使用顺序排列。
	// @alias 表达式
	B表达式 map[string]interface{} `_type:"表现位置操作"`
}
